home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / p_man / cat3 / SCSL / srotm.z / srotm
Encoding:
Text File  |  2002-10-03  |  10.9 KB  |  265 lines

  1.  
  2.  
  3.  
  4. SSSSRRRROOOOTTTTMMMM((((3333SSSS))))                                                            SSSSRRRROOOOTTTTMMMM((((3333SSSS))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      SSSSRRRROOOOTTTTMMMM, DDDDRRRROOOOTTTTMMMM - Applies a modified Givens plane rotation
  10.  
  11. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  12.      Single precision
  13.  
  14.           Fortran:
  15.                CCCCAAAALLLLLLLL SSSSRRRROOOOTTTTMMMM ((((_n,,,, _x,,,, _i_n_c_x,,,, _y,,,, _i_n_c_y,,,, _r_p_a_r_a_m))))
  16.  
  17.           C/C++:
  18.                ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>>
  19.                vvvvooooiiiidddd ssssrrrroooottttmmmm ((((iiiinnnntttt _n,,,, ffffllllooooaaaatttt *_x,,,, iiiinnnntttt _i_n_c_x,,,, ffffllllooooaaaatttt *_y,,,, iiiinnnntttt _i_n_c_y,,,,
  20.                ffffllllooooaaaatttt *_r_p_a_r_a_m))));;;;
  21.  
  22.      Double precision
  23.  
  24.           Fortran:
  25.                CCCCAAAALLLLLLLL DDDDRRRROOOOTTTTMMMM ((((_n,,,, _x,,,, _i_n_c_x,,,, _y,,,, _i_n_c_y,,,, _r_p_a_r_a_m))))
  26.  
  27.           C/C++:
  28.                ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>>
  29.                vvvvooooiiiidddd ddddrrrroooottttmmmm ((((iiiinnnntttt _n,,,, ddddoooouuuubbbblllleeee *_x,,,, iiiinnnntttt _i_n_c_x,,,, ddddoooouuuubbbblllleeee *_y,,,, iiiinnnntttt _i_n_c_y,,,,
  30.                ddddoooouuuubbbblllleeee *_r_p_a_r_a_m))));;;;
  31.  
  32. IIIIMMMMPPPPLLLLEEEEMMMMEEEENNNNTTTTAAAATTTTIIIIOOOONNNN
  33.      These routines are part of the SCSL Scientific Library and can be loaded
  34.      using either the ----llllssssccccssss or the ----llllssssccccssss____mmmmpppp option.  The ----llllssssccccssss____mmmmpppp option
  35.      directs the linker to use the multi-processor version of the library.
  36.  
  37.      When linking to SCSL with ----llllssssccccssss or ----llllssssccccssss____mmmmpppp, the default integer size is
  38.      4 bytes (32 bits). Another version of SCSL is available in which integers
  39.      are 8 bytes (64 bits).  This version allows the user access to larger
  40.      memory sizes and helps when porting legacy Cray codes.  It can be loaded
  41.      by using the ----llllssssccccssss____iiii8888 option or the ----llllssssccccssss____iiii8888____mmmmpppp option. A program may use
  42.      only one of the two versions; 4-byte integer and 8-byte integer library
  43.      calls cannot be mixed.
  44.  
  45.      The C and C++ prototypes shown above are appropriate for the 4-byte
  46.      integer version of SCSL. When using the 8-byte integer version, the
  47.      variables of type iiiinnnntttt become lllloooonnnngggg lllloooonnnngggg and the <<<<ssssccccssssllll____bbbbllllaaaassss____iiii8888....hhhh>>>> header
  48.      file should be included.
  49.  
  50. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  51.      These routines apply the modified Givens plane rotation constructed by
  52.      SSSSRRRROOOOTTTTMMMMGGGG/DDDDRRRROOOOTTTTMMMMGGGG.
  53.  
  54.      See the NOTES section of this man page for information about the
  55.      interpretation of the data types described in the following arguments.
  56.  
  57.      These routines have the following arguments:
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. SSSSRRRROOOOTTTTMMMM((((3333SSSS))))                                                            SSSSRRRROOOOTTTTMMMM((((3333SSSS))))
  71.  
  72.  
  73.  
  74.      _n         Integer.  (input)
  75.                Number of planar points to be rotated.  If _n <= 0, these
  76.                routines return without any computation.
  77.  
  78.      _x         Array of dimension (_n-1) * |_i_n_c_x| + 1.  (input and output)
  79.                SSSSRRRROOOOTTTTMMMM: Single precision array.
  80.                DDDDRRRROOOOTTTTMMMM: Double precision array.
  81.                On input, array _x contains the _x-coordinate of each planar
  82.                point to be rotated.  On output, array _x contains the
  83.                _x-coordinate of each rotated planar point.
  84.  
  85.      _i_n_c_x      Integer.  (input)
  86.                Increment between elements of _x.  If _i_n_c_x = 0, the results will
  87.                be unpredictable.
  88.  
  89.      _y         Array of dimension (_n-1) * |_i_n_c_y| + 1.  (input and output)
  90.                SSSSRRRROOOOTTTTMMMM: Single precision array.
  91.                DDDDRRRROOOOTTTTMMMM: Double precision array.
  92.                On input, array _y contains the _y-coordinate of each planar
  93.                point to be rotated.  On output, array _y contains the
  94.                _y-coordinate of each rotated planar point.
  95.  
  96.      _i_n_c_y      Integer.  (input)
  97.                Increment between elements of _y.  If _i_n_c_x = 0, the results will
  98.                be unpredictable.
  99.  
  100.      _r_p_a_r_a_m    Array of dimension 5.  (input)
  101.                SSSSRRRROOOOTTTTMMMM: Single precision array.
  102.                DDDDRRRROOOOTTTTMMMM: Double precision array.
  103.                Contains rotation matrix information.
  104.  
  105.      These routines compute a planar rotation, with possible scaling or
  106.      reflection, as follows:
  107.  
  108.           _      _     _               _  _      _
  109.           | x(i) |     | h(1,1) h(1,2) |  | x(i) |
  110.           | y(i) | <-- | h(2,1) h(2,2) |  | y(i) |
  111.           -      -     -               -  -      -
  112.  
  113.           for i=1 ,  , n
  114.  
  115.  
  116.      where the matrix that contains the elements _h(1,1), _h(2,1), _h(1,2), and
  117.      _h(2,2) is called a rotation matrix.
  118.  
  119.      The _r_p_a_r_a_m array determines the contents of the rotation matrix, as
  120.      follows:
  121.  
  122.      The key parameter, _r_p_a_r_a_m(1), may have one of four values:
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. SSSSRRRROOOOTTTTMMMM((((3333SSSS))))                                                            SSSSRRRROOOOTTTTMMMM((((3333SSSS))))
  137.  
  138.  
  139.  
  140.           1.0,  0.0,  -1.0,  or -2.0
  141.  
  142.      If _r_p_a_r_a_m(1) = 1.0:
  143.  
  144.           _               _   _                      _
  145.           | _h(_1,_1) _h(_1,_2) | = | _r_p_a_r_a_m(_2)      _1._0   |
  146.           | _h(_2,_1) _h(_2,_2) |   |    -_1._0    _r_p_a_r_a_m(_5) |
  147.           -               -   -                      -
  148.  
  149.  
  150.      and _r_p_a_r_a_m(3) and _r_p_a_r_a_m(4) are ignored.
  151.  
  152.      If _r_p_a_r_a_m(1) = 0.0:
  153.  
  154.           _               _   _                      _
  155.           | _h(_1,_1) _h(_1,_2) | = |       _1._0  _r_p_a_r_a_m(_4) |
  156.           | _h(_2,_1) _h(_2,_2) |   | _r_p_a_r_a_m(_3)        _1._0 |
  157.           -               -   -                      -
  158.  
  159.  
  160.  
  161.      and _r_p_a_r_a_m(2) and _r_p_a_r_a_m(5) are ignored.
  162.  
  163.      If _r_p_a_r_a_m(1)=-1.0 (rescaling case):
  164.  
  165.      _               _   _                      _
  166.      | _h(_1,_1) _h(_1,_2) | = | _r_p_a_r_a_m(_2)  _r_p_a_r_a_m(_4) |
  167.      | _h(_2,_1) _h(_2,_2) |   | _r_p_a_r_a_m(_3)  _r_p_a_r_a_m(_5) |
  168.      -               -   -                      -
  169.  
  170.  
  171.      This is a full matrix multiplication.
  172.  
  173.      If _r_p_a_r_a_m(1) = -2.0:
  174.  
  175.                _               _   _          _
  176.                | _h(_1,_1) _h(_1,_2) | = | _1._0  _0._0 | = _I
  177.                | _h(_2,_1) _h(_2,_2) |   | _0._0  _1._0 |
  178.                -               -   -          -
  179.  
  180.  
  181.      where _I is the _i_d_e_n_t_i_t_y _m_a_t_r_i_x.  In this case, _r_p_a_r_a_m(2), _r_p_a_r_a_m(3),
  182.      _r_p_a_r_a_m(4), and _r_p_a_r_a_m(5) are ignored.
  183.  
  184.      If _n <=  0, or if the rotation matrix is the identity matrix (for
  185.      example, when _r_p_a_r_a_m(1) = -2.0), these routines return with no operation
  186.      on input arrays _x and _y.
  187.  
  188. NNNNOOOOTTTTEEEESSSS
  189.      The following data types are described in this documentation:
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. SSSSRRRROOOOTTTTMMMM((((3333SSSS))))                                                            SSSSRRRROOOOTTTTMMMM((((3333SSSS))))
  203.  
  204.  
  205.  
  206.           TTTTeeeerrrrmmmm UUUUsssseeeedddd                     DDDDaaaattttaaaa ttttyyyyppppeeee
  207.  
  208.      Fortran:
  209.  
  210.           Array dimensioned _n           xxxx((((nnnn))))
  211.  
  212.           Integer                       IIIINNNNTTTTEEEEGGGGEEEERRRR (IIIINNNNTTTTEEEEGGGGEEEERRRR****8888 for ----llllssssccccssss____iiii8888[[[[____mmmmpppp]]]])
  213.  
  214.           Single precision              RRRREEEEAAAALLLL
  215.  
  216.           Double precision              DDDDOOOOUUUUBBBBLLLLEEEE PPPPRRRREEEECCCCIIIISSSSIIIIOOOONNNN
  217.  
  218.      C/C++:
  219.  
  220.           Array dimensioned _n           xxxx[[[[_n]]]]
  221.  
  222.           Integer                       iiiinnnntttt (lllloooonnnngggg lllloooonnnngggg for ----llllssssccccssss____iiii8888[[[[____mmmmpppp]]]])
  223.  
  224.           Single precision              ffffllllooooaaaatttt
  225.  
  226.           Double precision              ddddoooouuuubbbblllleeee
  227.  
  228. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  229.      IIIINNNNTTTTRRRROOOO____SSSSCCCCSSSSLLLL(3S), IIIINNNNTTTTRRRROOOO____BBBBLLLLAAAASSSS1111(3S) SSSSRRRROOOOTTTTMMMMGGGG(3S)
  230.  
  231.      IIIINNNNTTTTRRRROOOO____CCCCBBBBLLLLAAAASSSS(3S) for information about using the C interface to Fortran 77
  232.      Basic Linear Algebra Subprograms (legacy BLAS) set forth by the Basic
  233.      Linear Algebra Subprograms Technical Forum.
  234.  
  235.      SSSSRRRROOOOTTTTMMMMGGGG(3S) for further details about the modified Givens transformation
  236.      and array _r_p_a_r_a_m
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.                                                                         PPPPaaaaggggeeee 4444
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.